﻿int[] list = [1, 2,4,3, 5, 8, 9, 10, 11, 2, 3];
SelectionSort(list);
foreach (int i in list)
{
	Console.Write(i + " ");
}

void SelectionSort(int[] nums) {
	int n = nums.Length;
	// 外循环：未排序区间为 [i, n-1]
	for (int i = 0; i < n - 1; i++) {
		// 内循环：找到未排序区间内的最小元素
		int k = i;
		for (int j = i + 1; j < n; j++) {
			if (nums[j] < nums[k])
				k = j; // 记录最小元素的索引
		}
		// 将该最小元素与未排序区间的首个元素交换
		(nums[k], nums[i]) = (nums[i], nums[k]);
	}
}
